<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        //全局是父作用域，函数内是子作用域，父作用域无法访问子作用域里面的数据，子作用域可以访问副作用域里面的数据，当某个子作用域访问数据时，首先会在自身作用域查找，找到了就使用，找不到就像上层找，找到了就使用，知道顶层还找不到就报错
        // var a=1;
        // function f1(){
        //     console.log(a)
        // }
        // f1();
        // function f2(){
        //     var b=2;
        // }
        // f2();
        // console.log(b);
        // function f3(){
        //     var c=3;
        //     console.log(d)
        // }
        // function f4(){
        //     var d=4;
        //     console.log(c)
        // }
        // f3();
        // f4();
        //f3、f4是兄弟作用域
        // var e=5;
        // function f5(){
        //     var e=6;
        //     function f6(){
        //         var e=7;
        //         function f7(){
        //             var e=8;
        //             function f8(){
        //                 var e=9;
        //                 // e="hello";
        //                 console.log(e);
        //             }
        //             f8();
        //             console.log(e);
        //         }
        //         f7();
        //     console.log(e);
        //     }
        //     f6();
        //     console.log(e);
        // }
        // f5();
        // console.log(e)
        ;var res=(function(msg){
            console.log(msg);
            var a=10;
            function box1(){
                console.log(a)
            }
            function box2(){
                console.log(a)
            }
            function box3(){
                console.log(a)
            }
            box1();
            box2();
            box3();
            return "hahahaahhaha";//回到最初的变量
        })("这是实参")//执行函数
        console.log(res)//值为hahahahaha
        
    </script>
</body>

</html>